﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJM.SPP.EntidadesNegocio;
using MJM.SPP.AccesoDatos;

namespace MJM.SPP.ComponentesNegocio
{
    public class ModuloCN
    {
        protected static SubOpcionCN objSubOpcionCN = new SubOpcionCN();

        public List<ModuloEN> Listar(int idPrograma)
        {
            ModuloAD objAD = new ModuloAD();
            return objAD.Listar(idPrograma);
        }

        public ModuloEN ObtenerModulo(int IDOpcion, int idPrograma)
        {
            ModuloEN objModuloEN = new ModuloEN();
            List<ModuloEN> lst = Listar(idPrograma);
            for (int i = 0; i < lst.Count; i++)
            {
                if (lst[i].OPTGEN_P_inID == IDOpcion)
                    objModuloEN = lst[i];
            }
            return objModuloEN;
        }

        public ModuloEN GetModulo(int idModulo,int idPrograma)
        {
            List<ModuloEN> lst = Listar(idPrograma);
            for (int i = 0; i < lst.Count; i++)
            {
                if (idModulo == lst[i].OPTGEN_P_inID)
                    return lst[i];
            }
            return null;
        }

        public int Insertar(ModuloEN obj)
        {
            ModuloAD objModuloAD = new ModuloAD();
            return objModuloAD.Insertar(obj);
        }

        public int Modificar(ModuloEN obj)
        {
            ModuloAD objModuloAD = new ModuloAD();
            return objModuloAD.Modificar(obj);
        }

        public int Eliminar(int idModulo,int idPrograma)
        {
            ModuloAD objModuloAD = new ModuloAD();
            ModuloEN objModuloEN=GetModulo(idModulo,idPrograma);
            objModuloEN.SEGU_inFLAELI = 0;
            List<SubOpcionEN> lst = objSubOpcionCN.Listar(idModulo);
            for (int i = 0; i < lst.Count; i++)
            {
                objSubOpcionCN.Eliminar(lst[i].SUBOPT_P_inID);
            }
            return objModuloAD.Modificar(objModuloEN);
        }

        public int Mover(int idModulo, int IdPrograma)
        {
            return new ModuloAD().Mover(IdPrograma, idModulo);
        }
    }
}
